
import logbook
from logbook import Logger,StreamHandler,FileHandler,TimedRotatingFileHandler
from logbook.more import ColorizedStderrHandler
from app import lxq
from .decorator import SingleDecorator

# logbook默认采用的是世界标准时间(utc)，而我们的北京时间是比世界标准时间早8个小时的。

'''
定义了一个Log类，这个类接受的name是日志的分类，如果不传入则默认为**「lxq」**，
filename(日志文件名)默认值为引入config.py中配置的LOG_NAME。
'''
# @SingleDecorator
class Log:
    handler = None

    def __init__(self, name='lxq', filename=lxq.config["LOG_NAME"]): # Logger 标识默认为app
        '''

        :param name: 业务名
        :param filename: 日志文件名
        '''
        # if not os.path.exists(lxq.config["LOG_DIR"]):
        #     os.mkdir()
        self.handler = logbook.FileHandler(filename, encoding="utf-8")
        logbook.set_datetime_format("local")  # 解决logbook 打印的时区问题，设置为本地时间

        self.logger = logbook.Logger(name)
        self.handler.push_application() # 官网固定用法

    def info(self, *args, **kwargs):
        return self.logger.info(*args, **kwargs)

    def error(self,*args, **kwargs):
        return self.logger.error(*args, **kwargs)


    def warning(self, *args, **kwargs):
        return self.logger.warning(*args, **kwargs)

    def debug(self, *args, **kwargs):
        return self.logger.debug(*args, **kwargs)

